Robot and method for operating the same

ABSTRACT

A robot includes at least one motor driving the robot to perform a predetermined motion; a memory storing a motion map database and a program comprising one or more instructions; and at least one processor electrically connected to the at least one motor and the memory, the at least one processor being configured to: obtain an input motion identifier based on a user input, identify a motion state indicating whether the robot is performing a motion, based on the motion state being in an active state, store the input motion identifier in the memory, and based on the motion state being in an idle state: determine an active motion identifier from at least one motion identifier stored in the memory based on a predetermined criterion; and control the at least one motor to drive a motion corresponding to the active motion identifier based on the motion map database.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a bypass continuation application of InternationalApplication PCT/KR2021/014100 filed on Oct. 13, 2021, which claimspriority to Korean Patent Application No. 10-2021-0083874, filed on Jun.28, 2021, in the Korean Intellectual Property Office, the disclosures ofwhich are incorporated herein in their entireties by reference.

TECHNICAL FIELD

Various embodiments of the disclosure relate to a robot for controllingmotion input processing in consideration of a motion state of the robotand a driving method thereof.

BACKGROUND ART

People extensively interact with each other through networked electronicdevices. As robot technology develops along with expansion of theapplication fields of robots, home robots that may be used in commonhomes are being manufactured, in addition to e.g., high-tech medicalrobots and aerospace robots. Accordingly, it is possible for a user ofan electronic device such as e.g., a smartphone to communicate in realtime with another person, using a networked robot. For example, a robotcalled a ‘telepresence robot’ (or a remote presence robot or a virtualpresence robot) is a robot that can be generally remote-controlled viaan electronic device such as a smartphone, by which a user of theelectronic device can perform both video and voice communications with arobot user.

DISCLOSURE Technical Problem

If the robot provides motions corresponding to video/voice in additionto video/voice communications, one can further enhance the interactiveexperience between users, such as e.g., vividness, friendly feeling, andfun. In this instance, it has to process a motion input based on a userinput such as e.g., video, voice, or the like, in line with the motiondriven by the robot.

Various embodiments of the disclosure provide a robot capable ofadjusting motion input processing in consideration of whether a motionstate of the robot is an active state or an idle state, when the robotdrives a motion corresponding to a user input, and a driving methodthereof.

Technical Solution

According to an aspect the disclosure, a robot may include at least onemotor driving the robot to perform a predetermined motion; a memorystoring a motion map database and a program comprising one or moreinstructions; and at least one processor electrically connected to theat least one motor and the memory, the at least one processor beingconfigured to execute the one or more instructions of the program storedin the memory to: obtain an input motion identifier based on a userinput, identify a motion state indicating whether the robot isperforming a motion, based on the motion state being in an active state,store the input motion identifier in the memory, and based on the motionstate being in an idle state: determine an active motion identifier fromat least one motion identifier stored in the memory based on apredetermined criterion; and control the at least one motor to drive amotion corresponding to the active motion identifier based on the motionmap database.

The predetermined criterion may correspond to one of a motion identifierset based on an external input, a most obtained motion identifier, or amost recently stored motion identifier.

The robot may include one or more of: a communication interfaceconfigured to receive the input motion identifier from an electronicdevice; or an input/output interface configured to obtain the userinput. The user input may include voice, text, image, emoticon andgesture.

The motion map database may include at least one record corresponding toeach motion drivable by the at least one motor, and the at least onerecord may include at least one motion identifier and at least one setof motor values for each motion timeframe of each of the at least onemotion identifier.

The at least one motor may be configured to drive the motion at a motionspeed corresponding to one of acceleration, constant velocity, ordeceleration in each motion timeframe, based on at least one set ofmotor values for each motion timeframe that are obtained using theactive motion identifier from the motion map database; and the at leastone processor is configured to store the input motion identifier in thememory, based on the at least one motor being driven at a predeterminedmotion speed.

The robot may further include an input/output interface configured toobtain a user input for setting a motion of the robot and a characterstring corresponding to the set motion. The at least one processor maybe further configured to execute the one or more instructions of theprogram stored in the memory to: obtain a candidate motion identifierbased on the character string, obtain at least one set of motor valuesfor each motion timeframe, corresponding to the set motion, and store arecord in the motion map database, wherein the record comprises thecandidate motion identifier and the at least one set of motor values foreach motion timeframe.

According to another aspect of the disclosure, an electronic device mayinclude an input/output interface configured to obtain a user input; acommunication interface configured to receive a motion statecorresponding to either one of an active state or an idle state from arobot; a memory storing a program comprising one or more instructions;and at least one processor electrically connected to the input/outputinterface, the communication interface, and the memory, the at least oneprocessor may be configured to execute the one or more instructions ofthe program stored in the memory to: obtain an input motion identifierbased on the user input, based on the motion state being in the activestate, store the input motion identifier in the memory; and based on themotion state being in the idle state: determine an active motionidentifier from at least one motion identifier stored in the memorybased on a predetermined criterion; and transmit the active motionidentifier to the robot using the communication interface.

The predetermined criterion may corresponds to one of a motionidentifier set based on an external input, a most obtained motionidentifier, or a most recently stored motion identifier.

According to yet another aspect of the disclosure, a method of driving arobot may include obtaining an input motion identifier based on a userinput; identifying a motion state indicating whether the robot is in anactive state or an idle state; based on the motion state being in theactive state, storing the input motion identifier; and based on themotion state being in the idle state: determining an active motionidentifier from at least one stored motion identifier based on apredetermined criterion; and driving a motion corresponding to theactive motion identifier based on a motion map database.

The predetermined criterion may correspond to one of a motion identifierset based on an external input, a most obtained motion identifier, or amost recently stored motion identifier.

The obtaining the input motion identifier based on the user input mayinclude one of receiving the determined motion identifier based on theuser input from an electronic device or obtaining the user input usingan input/output interface; and the user input may include voice, text,image, emoticon and gesture.

The motion map database may include at least one record corresponding toeach motion drivable by the at least one motor, wherein the at least onerecord comprises at least one motion identifier and at least one set ofmotor values for each motion timeframe of each of the at least onemotion identifier.

The driving the motion corresponding to the active motion identifier maybe an operation to drive the motion at a motion speed corresponding toone of acceleration, constant velocity, or deceleration in each ofmotion timeframes, based on at least one set of motor values for each ofmotion timeframes of the motion; and the storing the input motionidentifier is an operation to store the input motion identifier, basedon the motion being driven at a predetermined motion speed.

The method may further include obtaining a user input for setting amotion of the robot; obtaining a character string corresponding to theset motion; obtaining a candidate motion identifier based on thecharacter string; obtaining at least one set of motor values for eachmotion timeframe corresponding to the set motion; and storing a recordin the motion map database, wherein the record comprises the candidatemotion identifier and the at least one set of motor values for eachmotion timeframe.

According to another aspect of the disclosure, a method of operating anelectronic device may include receiving from a robot a motion stateindicating one of an active state or an idle state; obtaining an inputmotion identifier based on a user input; based on the motion state beingin the active state, storing the input motion identifier; and based onthe motion state being in the idle state: determining an active motionidentifier from at least one stored motion identifier based on apredetermined criterion; and transmitting the active motion identifierto the robot.

The predetermined criterion may correspond to one of a motion identifierset based on an external input, a most obtained motion identifier, or amost recently stored motion identifier.

According to yet another aspect of the disclosure, a robot may includeat least one motor driving the robot to perform one or more a motions; amemory storing a program comprising one or more instructions; aninput/output interface configured to output text and voice; and at leastone processor electrically connected to the at least one motor and thememory, the at least one processor being configured to execute the oneor more instructions of the program stored in the memory to: obtain auser input from a user, the user input comprising one or more of textand voice; obtain a plurality of motion identifiers based on the one ormore of the text or voice; obtain a plurality of motions correspondingto the plurality of motion identifiers; control the input/outputinterface to output the one or more of the text and voice; and controlthe at least one motor to drive the robot to perform one or more of theplurality of motions as text or voice of a corresponding motion isoutput by the input/output interface.

The at least one processor may be further configured to: determinewhether the robot is in an active state or an idle state; based on therobot being in the active state when text or voice of a first motion isoutput, skip the first motion; and based on the robot being in the idlestate when text or voice of the first motion is output, control the atleast one motor to drive the robot to perform the first motion.

The at least one processor may be further configured to: determinewhether the robot is in an active state or an idle state; based on therobot being in the active state when text or voice of a first motion isoutput, store the first motion in the memory; and based on the robotbeing in the idle state when text or voice of the first motion isoutput, control the at least one motor to drive the robot to perform afirst stored motion.

The first stored motion may be selected based on a predeterminedcriterion, and the predetermined criterion may correspond to one of amotion identifier set based on an external input, a most obtained motionidentifier, or a most recently stored motion identifier.

Advantageous Effects

According to various embodiments of the disclosure, it is possible tofurther enhance the user experience such as e.g., vividness, friendlyfeeling, concentration, fun, learning effect and so on, enabling a robotto provide a motion corresponding to a user input such as e.g., voice,texts, images, emoticons and gestures. Further, providing a motioncorresponding to the user input in the robot makes it possible tofurther facilitate communications between its users through the robot.

Furthermore, according to various embodiments of the disclosure, a robotcan drive a motion corresponding to a motion identifier obtained basedon a user input, so that when the robot is in an active motion state,the obtained motion identifier is stored, and when the robot is in anidle motion state, the motion identifier is determined based on apredetermined criterion from at least one stored motion identifier toperform the motion input, thereby allowing the motion input processingto be controlled in consideration of the robot's motion state.Accordingly, even when a motion input speed is faster than a motiondriving speed by the robot, any possible errors caused by the collisionof the motion driving in the robot can be avoided in advance, and theusers can obtain more natural user experience as if a human performssuch a motion.

Effects that one may obtain from exemplary embodiments of the disclosureare not limited to the above-mentioned effects, and any other effectsnot mentioned herein may be clearly derived and understood from thefollowing description by those having ordinary knowledge in the art towhich the exemplary embodiments of the disclosure pertain. In otherwords, any unexpected effects according to implementing the exemplaryembodiments of the disclosure may be also derived by an expert skilledin the art from the exemplary embodiments of the disclosure.

DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a robot driving environment including a robot, anelectronic device, and a network connecting the robot and the electronicdevice to each other according to various embodiments.

FIG. 2 is a diagram showing an appearance of a robot according to anembodiment.

FIG. 3 is a diagram of a robot driving method including a user input, amotion identifier determination, a motion matching, and a robotoperation according to an embodiment.

FIG. 4 is a diagram of obtaining a motion record corresponding to amotion identifier from a motion map database according to an embodiment.

FIG. 5 is an exemplary diagram of setting a motion map databaseaccording to an embodiment.

FIG. 6 is a schematic block diagram of an electronic device according toan embodiment.

FIG. 7 is a schematic block diagram of a robot according to anembodiment.

FIG. 8 is a flowchart of a driving method of a robot according to anembodiment.

FIG. 9 is a flowchart of an operating method of an electronic deviceaccording to an embodiment.

MODE OF INVENTION

Terms used in various embodiments of the disclosure have been selectedas general terms currently in wide use, while considering the functionsof the disclosure, but they may vary depending on the intentions ofthose skilled in the art, any relevant precedents, the emergence of newtechnologies, and so on. Further, in a certain instance, a termarbitrarily selected by the Applicant may be used, in which case itsmeaning will be described in more detail in the description of thecorresponding embodiment. Therefore, the terms used in the disclosureshould be defined based on the substantive meaning of the term and theentire contents of the disclosure, rather than a simple name of theterm.

Throughout the specification, when it is described that an element“include(s)” a certain component, it will mean that it may furtherinclude any other component(s), rather than excluding other components,unless otherwise clearly stated. Further, terms such as e.g., “. . .unit”, “. . . module” or the like described throughout the specificationwill mean a unit to process at least one function or operation, whichmay be implemented as either hardware or software, or a combination ofhardware and software.

Hereinafter, with reference to the accompanying drawings, variousexample embodiments will be described in detail so that those havingordinary knowledge in the art to which the disclosure pertains caneasily implement the same. However, the disclosure may be implemented inseveral different forms and is not limited to the example embodimentsdescribed herein. In the drawings, like reference numerals refer to likeelements or components, and the dimension of each component in thedrawings may be partially exaggerated or scaled-down/up for betterclarity of description.

FIG. 1 shows a robot driving environment including a robot, anelectronic device, and a network connecting the robot and the electronicdevice to each other according to various embodiments.

According to various embodiments, the robot driving environment mayinclude a networked robot 110 and an electronic device 120.

The electronic device 120 or the robot 110 may obtain a user input. Theuser input may include, for example, voice, text, image, emoticon, andgesture. The electronic device 120 or the robot 110 may obtain a textbased on the user input and perform a natural language process for theobtained text to obtain a motion identifier for performing a motion.

According to an embodiment, the robot 110 and the electronic device 120may perform voice and/or video communications with each other throughtheir applications, respectively. The robot 110 may output a voiceand/or a video provided from the electronic device 120. Further, theelectronic device 120 may obtain the motion identifier based on thevoice and/or the video. When the electronic device 120 obtains themotion identifier based on the user input, the robot 110 may receive themotion identifier from the electronic device 120. The robot 110 maydrive a motion corresponding to the motion identifier.

According to various embodiments, the robot 110 or the electronic device120 may adjust motion input processing based on the user input inconsideration of a motion state of the robot.

Hereinafter, description is made to a method for driving the robot 110including the user input, the motion identifier determination, themotion matching and the robot operation, with reference to FIG. 3according to various embodiments.

According to various embodiments, the electronic device 120 may includea terminal capable of performing the computing and communicationfunctions, and the like. The electronic device 120 may be a desktopcomputer, a smartphone, a notebook computer, a tablet PC, a smart TV, amobile phone, a personal digital assistant (PDA), a laptop, a mediaplayer, a micro server, a global positioning system (GPS) device, ane-book terminal, a digital broadcasting terminal, a navigation system, akiosk, an MP3 player, a digital camera, a home appliance, or othermobile or non-mobile computing devices, but is not limited thereto.Further, the electronic device 120 may be a wearable terminal of e.g., awatch, glasses, a hair band, a ring and so on, capable of performing thecomputing and communication functions. The electronic device 120 may beone of various types of terminals without limiting to the abovedescription.

According to various embodiments, the network connecting the robot 110and the electronic device 120 may be a short-range communication networksuch as e.g., Bluetooth, Wireless Fidelity (Wi-Fi), Zigbee, or InfraredData Association (IrDA), and a remote area communication network such ase.g., a cellular network, a next-generation communication network,Internet, or a computer network (e.g., LAN or WAN). The cellular networkmay include, for example, Global System for Mobile Communications (GSM),Enhanced Data GSM Environment (EDGE), Code Division Multiple Access(CDMA), Time Division Multiplexing Access (TDMA), 5G, Long TermEvolution (LTE), and LTE Advanced (LTE-A). The network may include aconnection of network elements such as e.g., hubs, bridges, routers,switches and gateways. The network may include one or more connectednetworks, for instance, a multiple network environment inclusive of apublic network such as Internet and a private network such as a securedenterprise private network. Access to the network may be provided viaone or more wired or wireless access networks. Furthermore, the networkmay support an Internet of Things (IoT) network for exchanging andprocessing information between distributed components of various things.

FIG. 2 is a diagram showing an appearance of a robot (for example, therobot 110 of FIG. 1 ) according to an embodiment.

Referring to FIG. 2 , the robot 200 may include a camera 210, a display220, a neck 230, an arm 240, and a torso 250.

The camera 210 may capture an image around the robot 200. For example,the camera 210 may take a picture of a person (e.g., a child) around therobot 200. As such, the electronic device 120 may monitor people aroundthe robot 200 through the robot 200. The camera 210 may include one ormore cameras and may be located on the display 220, but the number andlocation of the cameras 210 is not limited thereto.

The display 220 may display a predetermined facial expression (such ase.g., a doll-like face), when the robot 200 does not communicate withother devices. When the robot 200 performs voice communication with theelectronic device 120, the display 220 may output a predeterminedscreen. The predetermined screen may include a user video or a userimage corresponding to the user of the electronic device 120, but is notlimited thereto. When the robot 200 performs video communications withthe electronic device 120, the display 220 may output an image receivedfrom the electronic device 120.

The robot 200 may include at least one connection part (i.e., a joint)in the neck 230, the arm 240, and the torso 250, and each connectionpart may have at least one degree of freedom (DOF). The degree offreedom may refer to the degree of freedom in kinematics or inversekinematics. The degree of freedom may imply the minimum number ofvariables required to determine the position and posture of each joint.For example, each joint in a three-dimensional space consisting ofx-axis, y-axis, and z-axis may have at least one degree of freedom ofthree degrees of freedom (position on each axis) to determine a spatialposition and three degrees of freedom (angle of rotation about eachaxis) to determine a spatial posture. For example, when a joint ismovable along each axis and is rotatable about each axis, it may beunderstood that the joint has six degrees of freedom. In order toimplement the at least one degree of freedom in each connection part,each connection part may include at least one motor. For example, eachdegree of freedom may be implemented by each motor, or a certain numberof degrees of freedom may be implemented by a single motor.

For example, when the connection part of the neck 230 in the robot 200is rotatable about two axes (e.g., in a back-and-forth direction and aside-to-side direction), the connection part of the neck 230 may havetwo degrees of freedom. Further, there may be two arms 240, that is, aleft arm and a right arm, and each arm 240 may include a shoulderconnection part and an elbow connection part. When each of the shoulderconnection part and the elbow connection part is rotatable about twoaxes, each of the shoulder connection part and the elbow connection partmay have two degrees of freedom. Further, when the torso 250 connectionpart is rotatable about one axis, the torso 250 connection part may haveone degree of freedom. However, the number and location of theconnection parts and their respective degrees of freedom are not limitedto the above examples.

FIG. 3 conceptually illustrates a robot driving method including theuser input, the motion identifier determination, the motion matching,and the robot operation according to an embodiment.

Referring to FIG. 3 , the robot driving method may obtain a user inputfrom the electronic device 120 or the robot 110 and determine a motionidentifier based on the obtained user input.

The user input may include, for instance, voice, text, image, emoticon,gesture and the like. The electronic device 120 or the robot 110 mayobtain at least one text through at least one of voice recognition,image recognition, emoticon recognition, and gesture recognition, basedon the user input. For example, when the user input is of a voice, theelectronic device 120 or the robot 110 may convert a signal, which isobtained from the outside by a user's utterance, into an electricalaudio signal, and then obtain at least one text sequentially recognizedfrom the converted audio signal. The electronic device 120 or the robot110 may obtain at least one character string (or keyword) correspondingto each motion from the obtained at least one text through naturallanguage processing. The natural language processing is a technology forallowing the electronic device 120 or robot 110, being a machine, tounderstand the human language, and may include splitting the naturallanguage complying with grammar. The electronic device 120 or the robot110 may determine each motion identifier based on the obtainedrespective character string. The motion identifier may identify eachmotion that the robot 110 can drive. The motion identifier may be theobtained character string or a numeric code corresponding to theobtained character string, but it is not limited thereto and may havevarious formats.

Based on the determined motion identifier in the robot 110, the robotdriving method may obtain from a motion map database at least one set ofmotor values capable of driving a motion corresponding to the determinedmotion identifier, and drive the motion using the obtained at least oneset of motor values.

Hereinafter, description is made of the operation of obtaining at leastone set of motor values (or motion record) capable of driving a motionfrom the motion map database, based on the determined motion identifier,with reference to FIG. 4 . Further, an operation of setting the motionmap database will be described later with reference to FIG. 5 .

FIG. 4 illustrates a conceptual diagram of obtaining a motion recordcorresponding to a motion identifier from a motion map databaseaccording to an embodiment.

Referring now to FIG. 4 , the robot 110 may use the motion identifier toobtain a motion record from the motion map database, in order to drivethe motion corresponding to the obtained motion identifier, based on auser input from the electronic device 120 or the robot 110.

In the illustrated example, the electronic device 120 or the robot 110may obtain a voice input from a user, obtain at least one text based onthe obtained voice input, and perform the natural language process ontothe obtained at least one text, so as to obtain at least one characterstring (or keyword) corresponding to each motion. The electronic device120 or the robot 110 may determine each motion identifier based on theobtained each character string. The motion identifier may identify eachmotion that the robot 110 can drive. The motion identifier may be theobtained character string or a numeric code corresponding to theobtained character string, but it is not limited thereto and may havevarious formats.

Table 1 below shows motion identifiers in the form of a character stringor a numeric code corresponding to the character string in the exampleshown in FIG. 3 .

TABLE 1 Character String Numeric Code Hello (410) 0 I see (420) 1 Haha(430) 2 I love you (440) 3

When the electronic device 120 obtains the motion identifier based onthe user input, the robot 110 may receive the motion identifier from theelectronic device 120. The robot 110 may store the motion map database,and the motion map database may be set by the robot 110 or an externaldevice to be provided to the robot 110. The operation of setting themotion map database will be described later with reference to FIG. 5 .

The robot 110 may obtain a motion record corresponding to the motionidentifier from the motion map database by using the motion identifier.FIG. 4 shows the motion records 450 to 480 in the motion map database,corresponding to the motion identifiers 410 to 440 disclosed by way ofexamples in the above Table 1. Each motion record corresponding to eachmotion capable of driving by at least one motor may include a motionidentifier and at least one set of motor values for each motiontimeframe. Each motion record may further include information indicatinga motion speed for each motion timeframe. For example, when a motion isdriven at a motion speed corresponding to either one of acceleration,constant velocity, or deceleration in each of the motion timeframes, themotion record may further include information indicating the motionspeed corresponding to one of acceleration, constant velocity, ordeceleration for each of the motion timeframes.

Table 2 below exemplarily discloses a motion record corresponding to themotion identifier having the character string ‘Hello’ or the numericcode ‘0’ in the examples of the Table 1. In the example of the Table 2,a connection part (joint) of each of a left arm, a right arm, a neck,and a torso may have one degree of freedom, and the one degree offreedom of each connection part exemplarily discloses the motion recordcorresponding to a scenario implemented by one motor. For example, forthe motion corresponding to ‘Hello’, the motors each driving the leftarm, the right arm, the neck and the torso may drive the left arm, theright arm, the neck and the torso by 0 degree, 0 degree, 0 degree and 0degree, respectively, for a time period from 0 second to 1 second, withrespect to one axis; drive the left arm, the right arm, the neck, andthe torso by 0 degree, 60 degrees, 0 degree, and 0 degree, respectively,for a time period from 1 second to 2 seconds; and drive the left arm,the right arm, the neck, and the torso by 0 degree, 0 degree, 0 degreeand 0 degree, respectively, for a time period from 2 seconds to 2.5seconds.

TABLE 2 Motion Identifier At least one set of motor values for eachmotion timeframe {left arm, right arm, neck, and torso} 0 (or ‘Hello’){1 sec., 0 deg., 0 deg., 0 deg., 0 deg.}, {2 sec, 0 deg., 60 deg., 0deg., 0 deg.}, {2.5 sec., 0 deg., 0 deg., 0 deg., 0 deg.}

FIG. 5 is diagram of setting a motion map database according to anembodiment.

Referring to FIG. 5 , the electronic device 120 or the robot 110 may seta motion map database through an application. The electronic device 120or the robot 110 may obtain a user input to set a motion of the robotand a character string corresponding to the set motion through theinterface. In the example of FIG. 5 , the electronic device 120 or therobot 110 may output a robot image, set a motion of the robot throughconversion of the robot image and outputting of the converted image,based on a user input such as e.g., dragging or clicking the robotimage, and receive a character string (e.g., ‘Hello’) corresponding tothe set motion (e.g., ‘Hello’) of the robot from the user.

The electronic device 120 or the robot 110 may obtain a motionidentifier based on the character string. The motion identifier mayidentify each motion that the robot 110 can drive. The motion identifiermay be the obtained character string or a numeric code corresponding tothe obtained character string, but it is not limited thereto and mayhave various formats.

The electronic device 120 or the robot 110 may obtain at least one setof motor values for each motion timeframe corresponding to the setmotion. The electronic device 120 or the robot 110 may include aninverse kinematics module using Jacobian inverse matrix, and may mapCartesian Coordinate information corresponding to the set motion toJoint Coordinate information of the robot 110, using the inversekinematics module. The electronic device 120 or the robot 110 may obtainat least one set of motor values for each motion timeframe correspondingto the set motion, from the Cartesian Coordinate informationcorresponding to the set motion.

The electronic device 120 or the robot 110 may store a record in themotion map database, wherein the record includes the motion identifierand at least one set of motor values for each motion timeframe. When adevice other than the robot 110 (e.g., the electronic device 120) setsthe motion map database, the robot 110 may receive the motion mapdatabase from the device.

FIG. 6 is a schematic block diagram of an electronic device according toan embodiment.

Referring now to FIG. 6 , an electronic device 600 (e.g., the electronicdevice 120 of FIG. 1 ) may include a processor 610, a memory 620, acommunication interface 640, and/or an input/output interface 650. Atleast one of a microphone (MIC) 681, a speaker (SPK) 682, a camera (CAM)683, or a display (DPY) 684 may be connected to the input/outputinterface 650. The memory 620 may include a program 630 including one ormore instructions. The program 630 may include an operating system (OS)program and an application program. The electronic device 600 mayinclude any additional components in addition to the illustratedcomponents, or omit at least one of the illustrated components, ascircumstances demand.

According to an embodiment, the communication interface 640 may providean interface for communication with other systems or devices. Thecommunication interface 640 may include a network interface card or awireless transmission/reception unit for enabling communications throughan external network. The communication interface 640 may perform signalprocessing for accessing a wireless network. The wireless network mayinclude, for example, at least one of a wireless LAN or a cellularnetwork (e.g., LTE (Long Term Evolution) network).

According to an embodiment, the input/output interface 650 may detect aninput from the outside (e.g., a user) and provide data corresponding tothe detected input to the processor 610. The input/output interface 650may include at least one hardware module to detect an input from theoutside. The at least one hardware module may include, for example, atleast one of a sensor, a keyboard, a key pad, a touch pad, or a touchpanel. In a case where the input/output interface 650 is implemented asa touch panel, the input/output interface 650 may be coupled to thedisplay 684 to provide a touch screen. In this instance, theinput/output interface 650 may provide the processor 610 with data abouta user's touch input such as e.g., tap, press, pinch, stretch, slide,swipe, rotate, or the like.

According to an embodiment, the display 684 may perform functions tooutput information in the form of numbers, characters, images, and/orgraphics. The display 684 may include at least one hardware module foroutputting. The at least one hardware module may include, for instance,at least one of a Liquid Crystal Display (LCD), a Light Emitting Diode(LED), a Light Emitting Polymer Display (LPD), an Organic Light EmittingDiode (OLED), an Active Matrix Organic Light Emitting Diode (AMOLED), ora Flexible LED (FLED). The display 684 may display a screencorresponding to data received from the processor 610. The display 684may be referred to as an ‘output unit’, a ‘display unit’, or other termshaving technical meaning equivalent thereto.

According to an embodiment, the microphone 681, which may beelectrically coupled to the processor 610 through the input/outputinterface 650, may convert an audible signal input from the outside dueto a user's utterance into an electrical audio signal. The audio signalconverted by the microphone 681 may be provided to the processor 610through the input/output interface 650. A component that may beelectrically coupled to the processor 610 through the input/outputinterface 650, in addition to the microphone 681, may be at least one ofthe speaker 682 or the camera 683. The speaker 682 may convert theelectrical audio signal provided from the processor 610 through theinput/output interface 650 into an audible signal that humans can hear,and then output the audible signal. The camera 683 may capture a subjectin response to a control from the processor 610, and convert thecaptured image into an electrical signal to be provided to the processor610 through the input/output interface 650.

According to an embodiment, the memory 620 may store data such as e.g.,a program 630 including one or more instructions or setting information.The program 630 may include an operating system program corresponding toa basic program for the overall operation of the electronic device 600and one or more application programs for supporting various functions.The memory 620 may be composed of a volatile memory, a non-volatilememory, or a combination of a volatile memory and a non-volatile memory.The memory 620 may provide the stored data according to a request of theprocessor 610.

According to an embodiment, the processor 610 may use the program 630stored in the memory 620 to execute the operation or data processingrequired for the control and/or communication of at least one othercomponents in the electronic device 600. The processor 610 may include,for example, at least one of a central processing unit (CPU), a graphicsprocessing unit (GPU), a micro controller unit (MCU), a sensor hub, asupplementary processor, a communication processor, an applicationprocessor, an application specific integrated circuit (ASIC) or fieldprogrammable gate arrays (FPGA), and may have multiple cores.

According to an embodiment, the processor 610 may process data obtainedthrough the input/output interface 650 or control operation states ofvarious input and/or output means through the input/output interface650. The various input and/or output means may be, for example, at leastone of a microphone (MIC) 681, a speaker (SPK) 682, a camera (CAM) 683,or a display (DPY) 684. The processor 610 may transmit and/or receivesignals through the communication interface 640.

According to an embodiment, the input/output interface 650 may obtain auser input. The user input may include, for example, voice, text, image,emoticon, and/or gesture.

According to an embodiment, the communication interface 640 may receivea motion state corresponding to one of an active state or an idle statefrom the robot 110. The motion state may be received from the robot 110when the motion state is changed in the robot 110, received from therobot 110 in response to a motion identifier transmission, or receivedfrom the robot 110 as a response to a motion state request of theelectronic device 600. Among the motion states, the active motion statemay mean a state in which at least one motor of the robot 110 is beingdriven, and the idle motion state may mean a state in which none of themotors is being driven in the robot 110.

According to an embodiment, the processor 610 may obtain a motionidentifier based on the user input. The processor 610 may obtain a textbased on the user input and perform a natural language process for theobtained text to obtain at least one character string (or keyword)corresponding to each motion. The processor 610 may determine eachmotion identifier based on the obtained each character string. Themotion identifier may identify each motion that the robot 110 can drive.The motion identifier may be either the obtained character string or anumeric code corresponding to the obtained character string, but it isnot limited thereto and may have various formats.

The processor 610 may store the obtained motion identifier in the memory620, when the motion state received from the robot 110 is the activestate.

According to an embodiment, the processor 610 may not store the motionidentifier in the memory 620, based on a preset storage option. Thepreset storage option may be set to a value indicating either ‘Enable’or ‘Disable’. When the preset storage option is of a value indicating‘Disable’ and the motion state received from the robot 110 is the activestate, the processor 610 may skip the obtained motion identifier withoutstoring it in the memory 620, so as to adjust motion input processing inconsideration of the motion state of the robot.

When the motion state is the idle state, the processor 610 may determinea motion identifier based on a predetermined criterion from the at leastone stored motion identifier. The processor 610 may control to transmitthe determined motion identifier to the robot, using the communicationinterface 640. The communication interface 640 may transmit thedetermined motion identifier to the robot.

The predetermined criterion may correspond to one of a motion identifierset based on an external input, a motion identifier obtained the mostbased on the user input, or a most recently stored motion identifier.For example, a predetermined motion identifier set based on the externalinput may be a motion identifier determined to be used the mostfrequently, based on various formats of external information. Further,the predetermined motion identifier set based on the external input maybe of a null value. In this instance, when the motion state receivedfrom the robot 110 is the active state, the obtained motion identifiermay be skipped in the electronic device 600, so that the electronicdevice 600 can adjust the motion input processing in consideration ofthe motion state of the robot.

Accordingly, for the motion identifier obtained based on the user input,the processor 610 may store the obtained motion identifier in the memory620 when the robot is in an active motion state, and when the robot isin an idle motion state, determine a motion identifier from the storedat least one motion identifier based on a predetermined criterion, andcontrol the communication interface 640 to transmit the determinedmotion identifier to the robot 120, thereby adjusting the motion inputprocessing in consideration of the motion state of the robot.

FIG. 7 is a schematic block diagram of a robot according to anembodiment.

Referring to FIG. 7 , the robot 700 (for example, the robot 110 of FIG.1 ) may include a processor 710, a memory 720, a motor 750, acommunication interface 760, and/or an input/output interface 770. Atleast one of a microphone (MIC) 781, a speaker (SPK) 782, a camera (CAM)783, and a display (DPY) 784 may be connected to the input/outputinterface 770. The memory 720 may store a program 730 including one ormore instructions and a motion map database 740. The program 730 mayinclude an operating system (OS) program and at least one applicationprogram. The robot 700 may include additional components in addition tothe illustrated components, or may omit at least one of the illustratedcomponents as required.

According to an embodiment, the communication interface 760 may providean interface for communication with other systems or devices. Thecommunication interface 760 may include a network interface card or awireless transmission/reception unit enabling communication through anexternal network. The communication interface 760 may perform signalprocessing for accessing a wireless network. The wireless network mayinclude, for example, at least one of a wireless LAN or a cellularnetwork (e.g., Long Term Evolution (LTE)).

According to an embodiment, the input/output interface 770 may detect aninput from the outside (e.g., a user) and provide data corresponding tothe detected input to the processor 710. The input/output interface 770may include at least one hardware module for detecting an input from theoutside. The at least one hardware module may include, for example, atleast one of a sensor, a keyboard, a key pad, a touch pad, or a touchpanel. When the input/output interface 770 is implemented as a touchpanel, the input/output interface 770 may be coupled to the display 784to provide a touch screen. In this context, the input/output interface770 may provide the processor 710 with data about a user's touch inputsuch as, for example, tap, press, pinch, stretch, slide, swipe, rotateor the like.

According to an embodiment, the display 784 may perform functions tooutput information in the form of numbers, characters, images, and/orgraphics. The display 784 may include at least one hardware module foroutputting. The at least one hardware module may include, for example,at least one of a Liquid Crystal Display (LCD), a Light Emitting Diode(LED), a Light Emitting Polymer Display (LPD), an Organic Light EmittingDiode (OLED), and an Active Matrix Organic Light Emitting Diode(AMOLED), or a Flexible LED (FLED). The display 784 may display a screencorresponding to data received from the processor 710. The display 784may be referred to as an ‘output unit’, a ‘display unit’, or other termshaving technical meaning equivalent thereto.

According to an embodiment, the microphone 781 that may be electricallycoupled to the processor 710 through the input/output interface 770 mayconvert an audible signal input from the outside due to a user'sutterance into an electrical audio signal. The audio signal converted bythe microphone 781 may be provided to the processor 710 through theinput/output interface 770. Any other component that may be electricallycoupled to the processor 710 through the input/output interface 770, inaddition to the microphone 781, may be at least one of a speaker 782 ora camera 783. The speaker 782 may convert the electrical audio signalprovided from the processor 710 through the input/output interface 770into an audible signal that a person can hear and then output theaudible signal. The camera 783 may capture a subject in response to acontrol from the processor 710, convert the captured image into anelectrical signal, and provide the captured image to the processor 710through the input/output interface 770.

According to an embodiment, the memory 720 may store a program 730including one or more instructions and a motion map database 740. Thememory 720 may further store data such as, for example, the settinginformation. The program 730 may include an operating system programcorresponding to a basic program for the operation of the robot 700 andat least one application program supporting various functions. Thememory 720 may include a volatile memory, a non-volatile memory, or acombination of a volatile memory and a non-volatile memory. The memory720 may provide the stored data according to a request of the processor710.

According to one embodiment, the processor 710 may use the program 730stored in the memory 720 to execute operations or data processingrelating to the control and/or communication of at least one othercomponent in the robot 700. The processor 710 may include, for instance,at least one of a central processing unit (CPU), a graphics processingunit (GPU), a micro-controller unit (MCU), a sensor hub, a supplementaryprocessor, a communication processor, an application processor, anapplication specific integrated circuit (ASIC), or field programmablegate arrays (FPGA), and may have a plurality of cores.

According to an embodiment, the processor 710 may process data obtainedthrough the input/output interface 770 or control the operating statesof various input and/or output means through the input/output interface770. The various input and/or output means may be, for example, at leastone of a microphone (MIC) 781, a speaker (SPK) 782, a camera (CAM) 783or a display (DPY) 784. The processor 710 may transmit and/or receive asignal through the communication interface 760.

According to an embodiment, the motor 750 may include at least one motorthat drives the robot to perform a predetermined motion. The motor 750may be electrically connected to the processor 710 and may be controlledby the processor 710 to drive the motion of the robot. In order toimplement at least one degree of freedom in each connection part (ajoint) of the robot, the robot 700 may include at least one motorcorresponding to each connection part. For example, each degree offreedom of the connection part may be implemented by each motor, or apredetermined number of degrees of freedom thereof may be implemented byone motor.

According to an embodiment, the processor 710 may obtain a motionidentifier based on a user input. The processor 710 may obtain themotion identifier determined based on the user input through theinput/output interface 770, or the communication interface 760 mayreceive from the electronic device 120 the motion identifier determinedbased on the user input in the electronic device 120 so that theprocessor 710 can obtain the received motion identifier from thecommunication interface 760. The user input may include, for instance,voice, text, image, emoticon, and gesture.

The processor 710 may identify a motion state indicating whether therobot 700 is performing a motion. When the motion state is the activestate, the processor 710 may store the obtained motion identifier in thememory 720.

According to an embodiment, the processor 710 may not store the motionidentifier in the memory 720, based on a preset storage option. Thepreset storage option may be set to a value indicating either ‘Enable’or ‘Disable’. When the preset storage option is a value indicating‘Disable’ and the motion state is in the active state, the processor 710may skip the obtained motion identifier without storing it in the memory720, thereby adjusting the motion input processing in consideration ofthe motion state of the robot.

When the motion state is IDLE, the processor 710 may control todetermine a motion identifier from the at least one stored motionidentifier, based on a predetermined criterion, and cause the motor 750to drive the motion corresponding to the determined motion identifier,based on the motion map database 740. The active motion state of themotion states may mean a state in which at least one motor of the robot700 is being driven, and the idle motion state may mean a state in whichnone of the motors is being driven in the robot 700.

The motion map database may include, for each motion drivable by the atleast one motor, a motion identifier and at least one set of motorvalues for each motion timeframe.

The predetermined criterion may correspond to one of a motion identifierset based on an external input, a motion identifier most obtained basedon the user input, or a most recently stored motion identifier. Forexample, the predetermined motion identifier set based on the externalinput may be a motion identifier determined to be used the mostfrequently based on various formats of external information. Further,the predetermined motion identifier set based on the external input maybe of a null value. In this instance, when the robot 700 is in theactive motion state, the obtained motion identifier may be skippedwithout being driven for a motion, thereby adjusting the motion inputprocessing in consideration of the motion state of the robot.

According to an embodiment, the motor 750 may drive the motion at amotion speed corresponding to one of acceleration, constant velocity, ordeceleration in each motion timeframe, based on at least one set ofmotor values for each motion timeframe, being obtained using the motionidentifier from the motion map database 740. For example, the motor 750may sequentially drive the motion at a motion speed of acceleration,constant velocity, or deceleration, thereby naturally driving the motionand therefore, enhancing the user experience. When the motor 750 isbeing driven at a predetermined motion speed, the processor 710 maystore the obtained motion identifier in the memory 720. For example, theprocessor 710 may store the obtained motion identifier in the memory720, when the motion is being driven at a motion speed corresponding toone of constant velocity or deceleration. As another example, when themotion is being driven at a motion speed corresponding to deceleration,the processor 710 may store the obtained motion identifier in the memory720. Through the above examples, the processor 710 may skip the obtainedmotion identifier without storing it in the memory 720 when the motionis being driven in an initial operation section (e.g., accelerationperiod) of the entire operation period of the motion (i.e., a pluralityof timeframes), thereby adjusting the motion input processing.

According to an embodiment, the robot 700 may generate a motion mapdatabase 740. In this instance, the input/output interface 770 mayobtain a user input to set a motion of the robot, and a character stringcorresponding to the set motion. The processor 710 may obtain a motionidentifier based on the character string. The processor 710 may obtainat least one set of motor values for each motion timeframe,corresponding to the set motion. The processor 710 may store a record inthe motion map database 740, wherein the record includes the motionidentifier and at least one set of motor values for each of the motiontimeframes.

FIG. 8 shows a schematic flowchart of a driving method in a robotaccording to an embodiment.

Referring now to FIG. 8 , in operation 810 according to an embodiment,the robot 110 may obtain an input motion identifier based on a userinput. The robot 110 may receive the motion identifier corresponding tothe user input from the electronic device 120 to obtain the input motionidentifier. Alternatively, the robot 110 may obtain the user input usingthe interface and determine the input motion identifier based on theobtained user input. The user input may include, for example, voice,text, image, emoticon, and gesture.

In operation 820 according to an embodiment, the robot 110 may identifya motion state indicating whether the robot 110 is performing a motion.

In operation 830 according to an embodiment, the robot 110 may determinewhether the motion state is the active state. If the motion state is theactive state, an operation 840 may be performed, and if the motion stateis not the active state (i.e., idle state), an operation 850 may beperformed.

In the operation 840 according to an embodiment, the robot 110 may storethe input motion identifier.

In the operation 850 according to an embodiment, the robot 110 maydetermine an active motion identifier from at least one stored motionidentifier, based on a predetermined criterion. The predeterminedcriterion may correspond to one of a motion identifier set based on anexternal input, a motion identifier most obtained based on a user input,or a most recently stored motion identifier.

In operation 860 according to an embodiment, the robot 110 may drive themotion corresponding to the active motion identifier, based on themotion map database. The motion map database may include at least onerecord corresponding to each motion, wherein the at least one recordincludes the motion identifier and at least one set of motor values foreach motion timeframe.

According to one embodiment, the robot 110 may drive the motion at amotion speed corresponding to one of acceleration, constant velocity, ordeceleration in each of the motion timeframes, based on at least one setof motor values for each motion timeframe. In this instance, theoperation of storing the input motion identifier (operation 840) may bean operation of storing the input motion identifier, when the motion isbeing driven at a predetermined motion speed. For example, when therobot 110 is driving the motion at a motion speed corresponding to oneof constant velocity or deceleration, the input motion identifier may bestored. As another example, when the robot 110 is driving the motion ata motion speed corresponding to deceleration, the input motionidentifier may be stored. Through the above examples, the robot 110 mayskip the input motion identifier without storing it into the memory,when the motion is being driven in the initial motion section (e.g.,acceleration period) of the entire operation period of the motion,thereby adjusting the motion input processing.

According to an embodiment, the robot 110 may set the motion mapdatabase. In this case, the robot 110 may set a motion of the robot,obtain a character string corresponding to the set motion, and obtain amotion identifier based on the character string. The robot 110 mayobtain at least one set of motor values for each motion timeframe,corresponding to the set motion. The robot 110 may store a record in themotion map database, wherein the record includes the motion identifierand at least one set of motor values for each of the motion timeframes.

FIG. 9 shows a schematic flowchart of a method of operating anelectronic device according to an embodiment.

Referring now to FIG. 9 , in operation 910 according to an embodiment,the electronic device 120 may receive a motion state corresponding toone of an active state or an idle state from the robot 110. Theoperation 910 may be performed before or after the operation 920.

In operation 920 according to an embodiment, the electronic device 120may obtain an input motion identifier based on a user input.

In operation 930 according to an embodiment, the electronic device 120may determine whether the motion state is the active state. If themotion state is the active state, an operation 940 may be performed, andif the motion state is not active state (i.e., idle state), an operation950 may be performed.

In operation 940 according to an embodiment, the electronic device 120may store the input motion identifier.

In operation 950 according to an embodiment, the electronic device 120may determine a motion identifier from at least one stored motionidentifier, based on a predetermined criterion. The predeterminedcriterion may correspond to one of a motion identifier set based on anexternal input, a most extracted motion identifier, or a most recentlystored motion identifier.

In operation 960 according to an embodiment, the electronic device 120may transmit the determined motion identifier to the robot 110.

The electronic device 600, the robot 700, the electronic device 600, andthe program executed by the robot 700, as described throughout thedisclosure, may be implemented with hardware components, or softwarecomponents, and/or a combination of hardware components and softwarecomponents. The program may be executed by any system capable ofexecuting computer readable instructions.

The software may include computer programs, codes, instructions, or acombination of one or more of these, and may configure a processing unitto operate as desired or command the processing unit eitherindependently or collectively. The software may be implemented as acomputer program including instructions stored in a computer-readablestorage medium. The computer-readable recording medium may include, forexample, a magnetic storage medium (e.g., floppy disk, hard disk, etc.),a solid-state storage medium (e.g., read-only memory (ROM),random-access memory (RAM), etc.), an optical-readable storage medium(e.g., CD-ROM, Digital Versatile Disc (DVD), etc.) or the like. Thecomputer-readable recording medium may be distributed overnetwork-connected computer systems, so that the computer-readable codescan be stored and executed in a distributed manner. The medium may bereadable by a computer, stored in a memory, and executed on a processor.

The computer-readable storage medium may be provided in the form of anon-transitory storage medium. Here, the term “non-transitory” maymerely imply that the storage medium does not include a signal and istangible, and it does not distinguish that data is semi-permanently ortemporarily stored in the storage medium.

Further, the program according to embodiments may be contained in acomputer program product. The computer program products may be tradedbetween sellers and buyers as commodities. The computer program productmay include a software program and a computer-readable storage medium inwhich the software program is stored. For example, the computer programproduct may include a product (e.g., a downloadable application) in theform of a software program distributed electronically via a manufacturerof such a device or an electronic market (e.g., Google™ Play Store, AppStore). For the electronic distribution, at least a portion of thesoftware program may be stored in a storage medium or may be temporarilygenerated. In this context, the storage medium may be a server of themanufacturer, a server of the electronic market, or a storage medium ofa relay server temporarily storing a software program.

In a system composed of a server and a device, the computer programproduct may include a storage medium of the server or a storage mediumof the device. Alternatively, in case where there is a third device(e.g., a smartphone) that is communicatively connected to the server orthe device, the computer program product may include a storage medium ofthe third device. Alternatively, the computer program product mayinclude the software program itself transmitted from the server to thedevice or the third device or transmitted from the third device to thedevice. In this instance, one of the server, the device and the thirddevice may execute the computer program product to perform the methodsaccording to the embodiments. Further, two or more of the server, thedevice, and the third device may execute the computer program product toimplement the methods according to the disclosed embodiments in adistributed manner. For example, the server may execute the computerprogram product stored in the server to control a device communicativelyconnected with the server to perform the methods according to theembodiments. As another example, the third device may execute thecomputer program product to control the device communicatively connectedwith the third device to perform the methods according to theembodiments. When the third device executes the computer programproduct, the third device may download the computer program product fromthe server and execute the downloaded computer program product.Alternatively, the third device may execute the computer program productprovided in a pre-loaded state to perform the methods according to theembodiments.

As described above, although various embodiments have been describedwith particular reference to the disclosed embodiments and theaccompanying drawings, it should be noted that various modifications andchanges would be possible from the above description by those skilled inthe art. For example, the techniques described heretofore may beperformed in a different order than the described methods, and/or thecomponents such as the computer systems or modules described above maybe either coupled or combined in a different form than the describedmethod, or may be substituted by other components or equivalentsthereof, achieving the appropriate and equivalent results.

1. A robot comprising: at least one motor driving the robot to perform apredetermined motion; a memory storing a motion map database and aprogram comprising one or more instructions; and at least one processorelectrically connected to the at least one motor and the memory, the atleast one processor being configured to execute the one or moreinstructions of the program stored in the memory to: obtain an inputmotion identifier based on a user input, identify a motion stateindicating whether the robot is performing a motion, based on the motionstate being in an active state, store the input motion identifier in thememory, and based on the motion state being in an idle state: determinean active motion identifier from at least one motion identifier storedin the memory based on a predetermined criterion; and control the atleast one motor to drive the robot to perform a motion corresponding tothe active motion identifier based on the motion map database.
 2. Therobot according to claim 1, wherein the predetermined criterioncorresponds to one of a motion identifier set based on an externalinput, a most obtained motion identifier, or a most recently storedmotion identifier.
 3. The robot according to claim 1, further comprisingone or more of: a communication interface configured to receive theinput motion identifier from an electronic device; or an input/outputinterface configured to obtain the user input, wherein the user inputcomprises voice, text, image, emoticon and gesture.
 4. The robotaccording to claim 1, wherein the motion map database comprises at leastone record corresponding to each motion drivable by the at least onemotor, and wherein the at least one record comprises at least one motionidentifier and at least one set of motor values for each motiontimeframe of each of the at least one motion identifier.
 5. The robotaccording to claim 1, wherein: the at least one motor is configured todrive the robot to perform the motion at a motion speed corresponding toone of acceleration, constant velocity, or deceleration in each motiontimeframe, based on at least one set of motor values for each motiontimeframe that are obtained using the active motion identifier from themotion map database; and the at least one processor is configured tostore the input motion identifier in the memory, based on the at leastone motor being driven at a predetermined motion speed.
 6. The robotaccording to claim 1, further comprising: an input/output interfaceconfigured to obtain a user input for setting a motion of the robot anda character string corresponding to the set motion, wherein the at leastone processor is further configured to execute the one or moreinstructions of the program stored in the memory to: obtain a candidatemotion identifier based on the character string, obtain at least one setof motor values for each motion timeframe, corresponding to the setmotion, and store a record in the motion map database, wherein therecord comprises the candidate motion identifier and the at least oneset of motor values for each motion timeframe.
 7. An electronic devicecomprising: an input/output interface configured to obtain a user input;a communication interface configured to receive a motion statecorresponding to either one of an active state or an idle state from arobot; a memory storing a program comprising one or more instructions;and at least one processor electrically connected to the input/outputinterface, the communication interface, and the memory, the at least oneprocessor being configured to execute the one or more instructions ofthe program stored in the memory to: obtain an input motion identifierbased on the user input, based on the motion state being in the activestate, store the input motion identifier in the memory; and based on themotion state being in the idle state: determine an active motionidentifier from at least one motion identifier stored in the memorybased on a predetermined criterion; and transmit the active motionidentifier to the robot using the communication interface.
 8. Theelectronic device according to claim 7, wherein the predeterminedcriterion corresponds to one of a motion identifier set based on anexternal input, a most obtained motion identifier, or a most recentlystored motion identifier.
 9. A method of driving a robot comprising:obtaining an input motion identifier based on a user input; identifyinga motion state indicating whether the robot is in an active state or anidle state; based on the motion state being in the active state, storingthe input motion identifier; and based on the motion state being in theidle state: determining an active motion identifier from at least onestored motion identifier based on a predetermined criterion; and drivinga motion corresponding to the active motion identifier based on a motionmap database.
 10. The method according to claim 9, wherein thepredetermined criterion corresponds to one of a motion identifier setbased on an external input, a most obtained motion identifier, or a mostrecently stored motion identifier.
 11. The method according to claim 9,wherein: the obtaining the input motion identifier based on the userinput comprises one of: receiving the determined motion identifier basedon the user input from an electronic device or obtaining the user inputusing an input/output interface; and the user input comprises voice,text, image, emoticon and gesture.
 12. The method according to claim 9,wherein the motion map database comprises at least one recordcorresponding to each motion drivable by the at least one motor, whereinthe at least one record comprises at least one motion identifier and atleast one set of motor values for each motion timeframe of each of theat least one motion identifier.
 13. The method according to claim 9,wherein: the driving the motion corresponding to the active motionidentifier is an operation to drive the motion at a motion speedcorresponding to one of acceleration, constant velocity, or decelerationin each of motion timeframes, based on at least one set of motor valuesfor each of motion timeframes of the motion; and the storing the inputmotion identifier is an operation to store the input motion identifier,based on the motion being driven at a predetermined motion speed. 14.The method according to claim 9, further comprising: obtaining a userinput for setting a motion of the robot; obtaining a character stringcorresponding to the set motion; obtaining a candidate motion identifierbased on the character string; obtaining at least one set of motorvalues for each motion timeframe corresponding to the set motion; andstoring a record in the motion map database, wherein the recordcomprises the candidate motion identifier and the at least one set ofmotor values for each motion timeframe.
 15. A method of operating anelectronic device, comprising: receiving from a robot a motion stateindicating one of an active state or an idle state; obtaining an inputmotion identifier based on a user input; based on the motion state beingin the active state, storing the input motion identifier; and based onthe motion state being in the idle state: determining an active motionidentifier from at least one stored motion identifier based on apredetermined criterion; and transmitting the active motion identifierto the robot.
 16. The method according to claim 15, wherein thepredetermined criterion corresponds to one of a motion identifier setbased on an external input, a most obtained motion identifier, or a mostrecently stored motion identifier.
 17. A robot comprising: at least onemotor driving the robot to perform one or more a motions; a memorystoring a program comprising one or more instructions; an input/outputinterface configured to output text and voice; and at least oneprocessor electrically connected to the at least one motor and thememory, the at least one processor being configured to execute the oneor more instructions of the program stored in the memory to: obtain auser input from a user, the user input comprising one or more of textand voice; obtain a plurality of motion identifiers based on the one ormore of the text or voice; obtain a plurality of motions correspondingto the plurality of motion identifiers; control the input/outputinterface to output the one or more of the text and voice; and controlthe at least one motor to drive the robot to perform one or more of theplurality of motions as text or voice of a corresponding motion isoutput by the input/output interface.
 18. The robot according to claim17, wherein the at least one processor is further configured to:determine whether the robot is in an active state or an idle state;based on the robot being in the active state when text or voice of afirst motion is output, skip the first motion; and based on the robotbeing in the idle state when text or voice of the first motion isoutput, control the at least one motor to drive the robot to perform thefirst motion.
 19. The robot according to claim 17, wherein the at leastone processor is further configured to: determine whether the robot isin an active state or an idle state; based on the robot being in theactive state when text or voice of a first motion is output, store thefirst motion in the memory; and based on the robot being in the idlestate when text or voice of the first motion is output, control the atleast one motor to drive the robot to perform a first stored motion. 20.The robot according to claim 19, wherein the first stored motion isselected based on a predetermined criterion, and wherein thepredetermined criterion corresponds to one of a motion identifier setbased on an external input, a most obtained motion identifier, or a mostrecently stored motion identifier.